////#include<iostream>
////#include<vector>
////#include<algorithm>
////using namespace std;
////class Node
////{
////public:
////	Node(int data)
////	{
////		_data = data;
////		_next = nullptr;
////	}
////	int _data;
////	Node* _next;
////};
////
////class ListNode
////{
////public:
////	ListNode()
////	{
////		head = nullptr;
////	}
////
////	void append(int val)
////	{
////		Node* newhead = new Node(val);
////		if (head == nullptr)
////		{
////			head = newhead;
////		}
////		else
////		{
////			Node* cur = head;
////			while (cur->_next != nullptr)
////			{
////				cur = cur->_next;
////			}
////			cur->_next = newhead;
////		}
////	}
////	
////
////
////	void Print()
////	{
////		Node* cur = head;
////		while (cur != nullptr)
////		{
////			cout << cur->_data;
////			cur = cur->_next;
////		}
////		cout << endl;
////	}
////
////	~ListNode() {
////		Node* curr = head;
////		Node* temp;
////		while (curr != nullptr) 
////		{
////			temp = curr;
////			curr = curr->_next;
////			delete temp;
////		}
////	}
////
////	Node* head;
////};
////
////int main()
////{
////	ListNode list;
////	list.append(4);
////	list.append(2);
////	list.append(1);
////	list.append(6);
////	list.append(7);
////	list.append(5);
////	list.Print();
////	
////	vector<int> ret;
////	Node* cur = list.head;
////	while (cur != nullptr)
////	{
////		ret.push_back(cur->_data);
////		cur = cur->_next;
////	}
////	sort(ret.begin(), ret.end());
////	ListNode newlist;
////	for (int i = 0; i < ret.size(); i++)
////	{
////		newlist.append(ret[i]);
////	}
////	newlist.Print();
////	return 0;
////}
//
//
//#include<iostream>
//#include<algorithm>
//#include<vector>
//using namespace std;
//
//class Node
//{
//public:
//	Node(const int x) :data(x)
//	{
//		next = nullptr;
//	}
//	Node* next;
//	int data;
//};
//
//
//class ListNode
//{
//public:
//	ListNode()
//	{
//		head = nullptr;
//	}
//
//	void append(int val)
//	{
//		Node* newhead = new Node(val);
//		if (head == nullptr)
//		{
//			head = newhead;
//		}
//		else
//		{
//			Node* cur = head;
//			while (cur->next)
//			{
//				cur = cur->next;
//			}
//			cur->next = newhead;
//		}
//	}
//
//	void Print()
//	{
//		Node* cur = head;
//		while (cur)
//		{
//			cout << cur->data << " ";
//			cur = cur->next;
//		}
//		cout << endl;
//	}
//
//
//	~ListNode()
//	{
//		Node* cur = head;
//		Node* temp;
//		while (cur)
//		{
//			temp = cur;
//			cur = cur->next;
//			delete temp;
//		}
//	}
//
//
//	Node* head;
//};
//
//int main()
//{
//	ListNode list;
//	list.append(2);
//	list.append(4);
//	list.append(1);
//	list.append(7);
//	list.append(7);
//	list.append(7);
//	list.append(7);
//	list.append(7);
//	list.append(7);
//	list.append(8);
//	list.append(0);
//	list.Print();
//	vector<int> ret;
//	Node* cur=list.head;
//	while (cur)
//	{
//		ret.push_back(cur->data);
//		cur = cur->next;
//	}
//	sort(ret.begin(), ret.end());
//	ListNode newlist;
//	for (int i = 0; i < ret.size(); i++)
//	{
//		newlist.append(ret[i]);
//	}
//	newlist.Print();
//	return 0;
//}
